package chapter04.d_4_5;

/**
 * 1.声明一个面积接口AreaInterface 声明面积方法area
 * 2.声明两个类
 *   a.长方形类 继承面积接口
 *     长方形类有长和宽属性
 *   b.圆形类 有半径属性 继承面积接口
 */
public class D5 {
    public static void main(String[] args){
// 1. 声明一个面积接口 AreaInterface
          abstract class AreaInterface {
            // 声明面积方法 area
            public abstract double area();
        }

// 2. 声明两个类
//   a. 长方形类 Rectangle 继承面积接口
         class Rectangle extends AreaInterface {
            // 长方形类有长和宽属性
            private double length;
            private double width;

            public Rectangle(double length, double width) {
                this.length = length;
                this.width = width;
            }

            // 实现面积方法 area
            @Override
            public double area() {
                return length * width;
            }
        }

//   b. 圆形类 Circle 有半径属性 继承面积接口
         class Circle extends AreaInterface {
            // 圆形类有半径属性
            private double radius;

            public Circle(double radius) {
                this.radius = radius;
            }

            // 实现面积方法 area
            @Override
            public double area() {
                return Math.PI * radius * radius;
            }
        }
    }
}
